﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using NIEN_LUAN.Db;
using System.Windows.Forms;
using System.Threading;

namespace NIEN_LUAN
{
    public partial class FormQuanLyKhachHang : Form
    {
        private DataContentDataContext db = new DataContentDataContext();

        public KHACHHANG KhachHangAdd = new KHACHHANG();     

        public FormQuanLyKhachHang()
        {
            InitializeComponent();
        }             

        private void FormQuanLyKhachHang_Load(object sender, EventArgs e)
        {           
            this.dataGridViewDSKH.AutoGenerateColumns = false;

            var khachhang = (from kh in db.KHACHHANGs
                             orderby kh.TenKhachHang ascending
                             select kh
                                 ).ToList();
            this.kHACHHANGBindingSource.DataSource = khachhang;
            this.dataGridViewDSKH.DataSource = this.kHACHHANGBindingSource;
        }

        private void toolStripButtonThem_Click(object sender, EventArgs e)
        {
            FormChiTietKhachHang frm = new FormChiTietKhachHang(this);
            DialogResult ketqua = frm.ShowDialog();
            if (ketqua == DialogResult.OK)
            {
                kHACHHANGBindingSource.Add(KhachHangAdd);
                MessageBox.Show("Thêm thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            } 
        }

        public KHACHHANG KhachHangSua = new KHACHHANG();
        private void toolStripButtonSua_Click(object sender, EventArgs e)
        {
            var khachhang = this.kHACHHANGBindingSource.Current as KHACHHANG;
            if (khachhang != null)
            {
                KhachHangSua = khachhang;
                var kq = new FormChiTietKhachHang(KhachHangSua, this).ShowDialog();
                if (kq == DialogResult.OK)
                {
                    khachhang.DiaChi = KhachHangSua.DiaChi;
                    khachhang.TenKhachHang = KhachHangSua.TenKhachHang;
                    khachhang.SoDienThoai = KhachHangSua.SoDienThoai;

                    this.kHACHHANGBindingSource.ResetCurrentItem();
                    MessageBox.Show("Đã cập nhật dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }

            }   
        }

        private void toolStripButtonXoa_Click(object sender, EventArgs e)
        {
            var khachhang = this.kHACHHANGBindingSource.Current as KHACHHANG;
            if (khachhang != null)
            {
                var kq = (from m in db.CHUNGTUs
                          where m.MaKhachHang == khachhang.MaKhachHang
                          select m).Count();
                if (kq > 0)
                {
                    MessageBox.Show("Khách hàng này đang nằm chứng từ chưa thanh toán xong !! Không thể xóa! ");
                    return;
                }
                var tl = MessageBox.Show("bạn có chắc chắn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (tl == DialogResult.Yes) {
                    try
                    {
                        db.KHACHHANGs.DeleteOnSubmit(khachhang);
                        db.SubmitChanges();
                        this.kHACHHANGBindingSource.RemoveCurrent();
                        MessageBox.Show("Đã xóa");
                        return;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Đã có lỗi xảy ra Chi tiết lỗi : "+ex.Message);
                        return;
                      //  throw;
                    }
                }
            }
            else
            {
                MessageBox.Show("Vui lòng chọn khách hàng cần xóa!");
            }

            //DialogResult traloi;
            //traloi = MessageBox.Show("Bạn có chắc không ?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            //if (traloi == DialogResult.Yes)
            //{
            //    kHACHHANGBindingSource.RemoveCurrent();
            //    //db.SubmitChanges();

            //    this.kHACHHANGBindingSource.ResetBindings(true);
            //    db.KHACHHANGs.DeleteOnSubmit(khachhang);
            //    this.dataGridViewDSKH.DataSource = this.kHACHHANGBindingSource;
            //    db.SubmitChanges();
            //    MessageBox.Show("Bạn đã xóa thành công !!!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            //}
        }

        private void toolStripButtonThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void toolStripButtonIn_Click(object sender, EventArgs e)
        {
            Form frm = new FormReportKhachHang(this);
            frm.ShowDialog();
        }
    }
}
